/**
 * Copyright 2025 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

@import url("./spectrum-button-base.css");

:host {
    display: inline-flex;
    vertical-align: top;

    --spectrum-progress-circle-size: var(--spectrum-workflow-icon-size-100);
    --spectrum-icon-size: var(--spectrum-workflow-icon-size-100);
}

:host([dir]) {
    /* spectrum-button.css uses "-webkit-appearance: button" to workaround an
     * iOS and Safari issue. However, it results in incorrect styling
     * when applied in :host
     */
    -webkit-appearance: none; /* stylelint-disable-line */
}

:host([disabled]) {
    pointer-events: none;
    cursor: auto;
}

#button {
    position: absolute;
    inset: 0;
}

::slotted(sp-overlay),
::slotted(sp-tooltip) {
    position: absolute;
}

:host:after {
    pointer-events: none;
}

::slotted(*) {
    pointer-events: none;
}

slot[name="icon"]::slotted(svg),
slot[name="icon"]::slotted(img) {
    fill: currentcolor;
    stroke: currentcolor;
    block-size: var(--spectrum-icon-size, var(--spectrum-workflow-icon-size-100));
    inline-size: var(--spectrum-icon-size, var(--spectrum-workflow-icon-size-100));
}

[icon-only] + #label {
    display: contents;
}

:host([size="xs"]) {
    --spectrum-progress-circle-size: var(--spectrum-workflow-icon-size-50);
    --spectrum-icon-size: var(--spectrum-workflow-icon-size-50);
}

:host([size="s"]) {
    --spectrum-progress-circle-size: var(--spectrum-workflow-icon-size-75);
    --spectrum-icon-size: var(--spectrum-workflow-icon-size-75);
}

:host([size="l"]) {
    --spectrum-progress-circle-size: var(--spectrum-workflow-icon-size-200);
    --spectrum-icon-size: var(--spectrum-workflow-icon-size-200);
}

:host([size="xl"]) {
    --spectrum-progress-circle-size: var(--spectrum-workflow-icon-size-300);
    --spectrum-icon-size: var(--spectrum-workflow-icon-size-300);
}

:host([size="xxl"]) {
    --spectrum-progress-circle-size: var(--spectrum-workflow-icon-size-400);
    --spectrum-icon-size: var(--spectrum-workflow-icon-size-400);
}
